package collection;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

/**
 * java.util.List接口
 * List接口继承自Collection
 * List集合的特点:可以存放重复元素且有序
 * List提供了一套通过下表操作元素的方法
 * 常用实现类:
 * java.util.ArrayList:内部使用数组实现，查询性能更好
 * java.util.LinkedList:内部使用链表实现，首尾增删性能更好
 */
public class ListDemo {
    public static void main(String[] args) {
        List<String> list = new ArrayList<>();
        list.add("one");
        list.add("two");
        list.add("three");
        list.add("four");
        list.add("five");
        System.out.println("list:" + list);

        /*
        E get(int index)
        根据下标获取指定元素
         */
        String e = list.get(1);//获取第二个元素
        System.out.println(e);

        for (int i = 0; i < list.size(); i++) {
            System.out.println(list.get(i));
        }

        /*
        E set(int index, E e)
        将给定元素设置到指定位置，并返回被替代的元素
         */
        e = list.set(2,"six");
        System.out.println("list:" + list);
        System.out.println("被替代的元素:" + e);

        //Collections.reverse(list);
        for (int i = 0; i < list.size() / 2; i++) {
            //获取正数位置的元素
            String str = list.get(i);
            //将正数位置的元素设置到倒数位置并获取被替换的倒数位置元素
            str = list.set(list.size()-1-i,str);
            //将原倒数位置的元素设置到正数位置上
            list.set(i,str);
        }
        System.out.println("反转后list:" + list);
    }
}
